От Динского социально-реабилитационного центра для несовершеннолетних. Сегодня отвёз им стиральную машину и четыре огромных коробки конфет. Спасибо всем, кто помогал!
Напоминаю, 9 декабря 2023 года мы собирались на митап алготрейдеров из сообществ OsEngine и Смартлаб: https://smart-lab.ru/company/os_engine/blog/965467.php
Мне показалось хорошей идеей предложить тем, кто встречается, немного помочь ребятам из Динской. И в качестве входного билета можно было купить «благотворительный билет» и задонатить на это дело без покупки чего-то.
Внезапно, нашлись люди (спасибо Вам!), которые идею поддержали. В итоге собрали 36 т.р.
Я ничего выдумывать не стал, позвонил директору заведения и спросил, что им нужно купить.
У них недавно сломались две стиральные машины из четырёх. И чтобы дети были отстираны, нужна была срочно замена.
Во время создания коннектора для OsEngine рекомендуется использовать версию C# не выше шестой. Новый синтаксический сахар ОЧЕНЬ интересен начинающим программистам, а они при этом нихрена в этом не понимают, от чего неизбежно будут проблемы. Поэтому мы просто всё это дело запретим.
Далее, очень короткое описание истории шарпов по версиям:
Многие API не разрешают избыточно частое (по их мнению) обращение к некоторым данным. Почти всегда на разные типы запросов есть те или иные ограничения. И в случае их превышения происходит какой-то вид отключения клиента от API, либо даже денежные штрафы!
Нам конечно же доводить до отключения коннектора от API нельзя. И коннектор, который не умеет соблюдать дистанцию между запросами, не работающий.
В связи с этим в коннекторах необходимо устанавливать ограничение на запросы определённых методов. Вроде подписки на инструменты или даже выставление ордеров. Как это делать? Поговорим в этой статье.
Объект, который отвечает за задержки между запросами, называется RateGate и находится у нас в проекте вот здесь:
Большинство коннекторов в OsEngine так или иначе используют данную технологию. Особенно это касается бирж криптовалют. Потоковые данные идут именно через данный протокол.
Библиотек для подключения данного протокола великое множество. В этой статье поговорим о библиотеке, которую надо использовать и на что обратить внимание.
WebSocketSharp.
Данная библиотека и реализация вёбсокетов хорошо себя показывают в работе. Её и нужно использовать. Работает как со строками, так и с шифрованными данными.
Http (в контексте написания коннектора для OsEngine) – важнейший способ получения данных через АПИ соответствующих бирж/брокеров. На ровне с WebSocket, Http, как протокол связи, используется в нашем фреймворке в подавляющем кол-ве коннекторов.
Естественно, с годами у нас накопился определённый опыт по тому, как надо и как не надо его использовать. Поговорим об этом…
Во всех API крипто-бирж данный протокол в том или ином виде присутствует. Он позволяет отправлять различные запросы на сервер биржи и получать в ответ какие-то данные.
Обычно это:
Делать эти запросы можно совершенно по-разному. За десятилетия жизни протокола появились сотни библиотек для этого. Однако, я рекомендую использовать следующие.
Клиент для отправки Http запросов может и должен быть использован в запросах, в которых нет динамически меняющихся заголовков. Т.е. для public запросов.
Это полный перечень пунктов программы лояльности для тех, кто зарегистрировался в ALOR как участник нашего сообщества и торгует через ALOR.
Камрады. Это то, что у меня получилось для Вас сделать в рамках нашего сотрудничества с АЛОР. Что-то далось легко, а что-то очень нелегко. Старался, как мог. Надеюсь Вы довольны. Я ДОВОЛЕН:
Мы открыли для Вас чат поддержки с прямым выходом на ТОП менеджеров АЛОР брокера.
В данной статье построчно разберём метод, который занимается подпиской на конкретную реализацию сервера. Что там происходит и зачем это нужно?
Идём и открываем CandleConnector. Сам класс находится в проекте вот здесь:
Поздравляю, товарищи обнаглевшие трейдеры. Не знаю, кто из Вас ему написал с требованием выдать нам скидку. Но человек оказался с чувством юмора и, почитав наш бложик на СмартЛабе, и вправду дал нам скидку.
Т.ч. СПАСИБО! И Иосифу, и камраду, который ему написал.
Напомню, в рамках становления программистом СиШарп, я в своей серии постов «Коннекторы к OsEngine» рекомендую ТРИ курса от Иосифа, которые проходят мои сотрудники.
Это:
1. Основы программирования: https://stepik.org/course/5482/promo
2. Алгоритмы поиска и сортировки: https://stepik.org/course/23981/promo
3. C# для продвинутых: https://stepik.org/course/84983/promo
В большинстве коннекторов OsEngine используется конвертация потоковых данных из JSON объектов. Поговорим о том, как правильно и не правильно поступать при их использовании.
Newtonsoft.Json
Именно эту библиотеку желательно использовать. Никакого смысла плодить в проекте множество преобразователей сообщений в JSON классы нет.
И на сегодняшний день можно говорить о том, что было бы не плохо, если бы она в итоге осталась единственной в нашем проекте для этих целей.
Камрады! Коннектор к ALOR OPEN API добавлен к OsEngine около трёх недель назад. Бета тесты завершены. Пора торговать!
1) Это очень классный коннектор в плане стека. Как крипта. Rest + web sockets. Это современно, это общепринятые стандарты, которые на сотнях бирж существуют. Короче — огонь.
2) Быстрый. Пока в глюках не замечен, только если палкой не тыкаешь.
3) Единственный пока в своём роде на MOEX. Лучшее, что есть из бесплатного. Им мог стать Тиньков Апи первой версии. Но там камрады стек трейдинговый не знали, кто его делал. А вторая команда разработчиков стек технологический изменила в худшую сторону.
4) Сообщения об ошибках при запросах прекрасны. И цифры, и текст. Очень редко, где такое. Спасибо. Это ускорило разработку. Отдельный привет команде за это. Красавчики.
Три различных типа времени приходит из шлюзов. Это супер странно. Вообще нигде такого не видел. Поэтому ставим на ПК МОСКОВСКОЕ ВРЕМЯ, иначе могут быть различные странности.